$(function() {

    // 定义传参的数据
    var q={
        pagenum:1,//页码值
        pagesize:2,//每页显示多少数据
        cate_id: '',//文章分类的id
        state:''//发布状态
    }
    // 添零
    function padZero(n){
        return n>9?n:'0'+n;
    }
    // 定义过滤器
    template.defaults.imports.dataFormat=function(data){
        var dt=new Date(data);
        var y=padZero(dt.getFullYear());
        var m=padZero(dt.getMonth());
        var d=padZero(dt.getDate());
        var hh=padZero(dt.getHours());
        var mm=padZero(dt.getMinutes());
        var ss=padZero(dt.getSeconds());
        return y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss;
    }
    initTable();
    function initTable(){
        $.ajax({
            type: "get",
            url: "/my/article/list",
            data: q,
            success: function (res) {
                // console.log(res);
                if (res.status!=0) {
                    return layui.layer.msg(res.message);
                }
                // console.log(11);
                layui.layer.msg(res.message);
                var htmlstr=template('tpl-table',res);
                $('tbody').html(htmlstr);
                // 将总条数传给 renderPage 方法
                renderPage(res.total);
            }
        });
    }
    initCate();
    // 筛选功能
    // 下拉框功能
    function initCate(){
        $.ajax({
            type: "get",
            url: "/my/article/cates",
            success: function (res) {
                // console.log(res);
                if (res.status!=0) {
                    return layui.layer.msg(res.message);
                }
                layui.layer.msg(res.message);
                var htmlstr=template('tpl-cate',res);
                $('[name=cate_id]').html(htmlstr);
                // 当我们渲染玩页面发现没有显示 这是layUI的机制导致的 我们需要用 form.render重新刷新下页面
                layui.form.render();//没有参数就是页面刷新 带参数就是 这个元素刷新
            }
        });
    }
    // 给id="form-search" 表单绑定submit事件
    $('#form-search').on('submit', function(e){
        e.preventDefault();
        //获取表单中的数据
        var cate_id=$('[name=cate_id]').val();
        var state=$('[name=state]').val();
        // 将数据给cate_id: '',//文章分类的idstate:''//发布状态
        q.cate_id=cate_id;
        q.state=state;
        // 重新渲染页面
        initTable();
    });
    // 分页列表
    function renderPage(total){
        layui.laypage.render({
            elem: 'pageBox', //注意，这里的 test1 是 ID，不用加 # 号,
            count: total ,//数据总数，从服务端得到
            limit: q.pagesize,//每页显示几条数据
            curr: q.pagenum,//默认选中几条数据
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            limits: [2, 3, 5, 10],
            jump:function(obj,frist){//第一个参数是当前分页的所有元素
                q.pagenum = obj.curr;//将默认选中的数据返回给q数据
                q.pagesize=obj.limit;//将每页显示几条数据返回给q数据
                // 这时候我们打开页面发现一字刷新的都是第一页的数据 点击不管用
                // 这是因为jump函数有两种触发机制 
                // 1.点击分页元素会触发jump函数
                // 2.调用renderpage函数会触发jump函数
                // 我们的原因就是第二种当进去的时候调用initTable函数 在initTable函数里边又调用了renderPage函数 这样就会触发jump函数 jump函数调用initTable函数 死循环
                // 我们应该判断一下jump是那种方式调用的 如果是第二种就不让其执行
                // 1返回值undefined2返回值是true
                if (!frist) {
                    initTable();
                }
            }
          });
    };
    // 实现删除功能  事件委托
    $('tbody').on('click','.btn-delete',function(){
        var id=$(this).attr('data-id');
        var len = $('.btn-delete').length
        // 添加弹出层
        layui.layer.confirm('确定删除吗?', {icon: 3, title:'提示'}, function(index){
            //do something
            $.ajax({
                type: "get",
                url: "/my/article/delete/"+id,
                success: function (res) {
                    if (res.status!=0) {
                        return layui.layer.msg(res.message);
                    }
                    layui.layer.msg(res.message);
                    // 当我们删除后进行回显时 出现一个小bug 我们判断这个分页上还有几个删除按钮如果还有一个证明删除完就没有数据了我们让分页减一即可 如果分页还剩下一那么就不用减一了
                    if (len==1) {
                        q.pagenum=q.pagenum===1?1:q.pagenum-1;
                    }
                    initTable();
                }
            });
            layui.layer.close(index);
          });
    });
    // 实现编辑功能 事件委托
    $('body').on('click','.btn-edit',function() {
        // 根据id获取数据保存到本地仓库 进行跳转页面
        var id=$(this).attr('data-id');
        console.log(id);
        $.ajax({
            type: "get",
            url: "/my/article/"+id,
            success: function (res) {
                console.log(res);
                var data=JSON.stringify(res.data);
                localStorage.setItem('editData',data);
                location.href='../../article/art-edit.html';
            }
        });
        
    })
})